﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace BibliotecaClases
{
    public class ENEmpleado
    {
        //  Atributos
        private string dni;
        private string nombre;
        private string apellidos;
        private string fnacimiento;
        private string tipo;
        private string telefono;
        private string direccion;
        private string cpostal;
        private string provincia;
        private string localidad;
        private string email;
        private string login;
        private string password;
        private string foto;

        //  CADEmpleado     
        CADEmpleado cadEmpleado = new CADEmpleado();


        //  Propiedades
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        public string Apellidos
        {
            get { return apellidos; }
            set { apellidos = value; }
        }
        public string Dni
        {
            get { return dni; }
            set { dni = value; }
        }
        public string Fnacimiento
        {
            get { return fnacimiento; }
            set { fnacimiento = value; }
        }
        public string Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }
        public string Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }
        public string Direccion
        {
            get { return direccion; }
            set { direccion = value; }
        }
        public string Cpostal
        {
            get { return cpostal; }
            set { cpostal = value; }
        }
        public string Provincia
        {
            get { return provincia; }
            set { provincia = value; }
        }
        public string Localidad
        {
            get { return localidad; }
            set { localidad = value; }
        }
        public string Email
        {
            get { return email; }
            set { email = value; }
        }
        public string Login
        {
            get { return login; }
            set { login = value; }
        }
        public string Password
        {
            get { return password; }
            set { password = value; }
        }
        public string Foto
        {
            get { return foto; }
            set { foto = value; }
        }

        //  Constructor por defecto
        public ENEmpleado()
        {
            dni = "";
            nombre = "";
            apellidos = "";
            fnacimiento = DateTime.Today.ToString();
            tipo = "";
            telefono = "";
            direccion = "";
            cpostal = "";
            provincia = "";
            localidad = "";
            email = "";
            login = "";
            password = "";
            foto = "";
        }

        //  Constructor sobrecargado
        public ENEmpleado(string dni, string nombre, string apellidos, string fnacimiento, string tipo,
            string telefono, string direccion, string cpostal, string provincia, string localidad, 
            string email, string login, string password, string foto)
        {
            this.dni = dni;
            this.nombre = nombre;
            this.apellidos = apellidos;
            this.fnacimiento = fnacimiento;
            this.tipo = tipo;
            this.telefono = telefono;
            this.direccion = direccion;
            this.localidad = localidad;
            this.provincia = provincia;
            this.cpostal = cpostal;
            this.email = email;
            this.login = login;
            this.password = password;
            this.foto = foto;
        }

        //  Metodo para cargar las provincias
        public DataSet ObtenerProvincias()
        {
            return cadEmpleado.ObtenerTablaProvincias();
        }

        //  Metodo para cargar las localidades
        public DataSet ObtenerLocalidades(string id)
        {
            return cadEmpleado.ObtenerTablaLocalidades(id);
        }

        //  Método para dar de alta a un cliente que devuelve el mensaje de una excepción o "" si es un alta correcta
        public string NuevoEmpleado()
        {
            return cadEmpleado.InsertarEmpleado(this);
        }

        //  Método que devuelve toda la tabla Cliente en un DataSet
        public DataSet ObtenerTodosEmpleados(ref string m)
        {
            return cadEmpleado.ObtenerTablaEmpleados(ref m);
        }

        //  Método para modificar un cliente
        public string ModificarEmpleado(string dni, string nombre, string apellidos,
            string fnacimiento, string tipo, string telefono, string direccion, string cpostal,
            string provincia, string localidad, string email, string login, string password, 
            string foto)
        {
            return cadEmpleado.ModificarEmpleado(dni, nombre, apellidos, fnacimiento, tipo, telefono, direccion,
                cpostal, provincia, localidad, email, login, password, foto);
        }

        //  Método para dar de baja a un cliente
        public string EliminarEmpleado(string dni)
        {
            return cadEmpleado.EliminarEmpleado(dni);
        }

        public bool ComprobarLoginLibre(string login)
        {
            return cadEmpleado.ComprobarLoginLibre(login);
        }

        public bool ExisteEmpleado(string empleado)
        { 
            return cadEmpleado.ExisteElEmpleado(empleado);
        }
    }
}
